<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-whc_version="25.0">
    <head><link rel="shortcut icon" href="../../../oxygen-webhelp/template/images/favicon.png"/><link rel="icon" href="../../../oxygen-webhelp/template/images/favicon.png"/><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="copyright" content="(C) Copyright 2024"/><meta name="generator" content="DITA-OT"/><meta name="description" content="The Google Cloud Storage executor performs a task in Google Cloud Storage each time it receives an event. For information about supported versions, see Supported Systems and Versions . Upon receiving ..."/><meta name="prodname" content="Data Collector"/><meta name="version" content="3"/><meta name="release" content="16"/><meta name="modification" content="0"/>        
      <title>Google Cloud Storage</title><!--  Generated with Oxygen version 25.1, build number 2023042410.  --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="concept_xym_npb_3qb-d16893e57364"/><meta name="wh-source-relpath" content="datacollector/UserGuide/Executors/GCS-E.dita"/><meta name="wh-out-relpath" content="datacollector/UserGuide/Executors/GCS-E.html"/>

    <link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/app/commons.css?buildId=2023042410"/>
    <link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/app/topic.css?buildId=2023042410"/>

    <script src="../../../oxygen-webhelp/app/options/properties.js?buildId=20240802104629"></script>
    <script src="../../../oxygen-webhelp/app/localization/strings.js?buildId=2023042410"></script>
    <script src="../../../oxygen-webhelp/app/search/index/keywords.js?buildId=20240802104629"></script>
    <script defer="defer" src="../../../oxygen-webhelp/app/commons.js?buildId=2023042410"></script>
    <script defer="defer" src="../../../oxygen-webhelp/app/topic.js?buildId=2023042410"></script>
<link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/template/light.css?buildId=2023042410"/><link rel="stylesheet" type="text/css" href="../../../skin.css"/></head>

    <body class="wh_topic_page frmBody">
        
        
        

        
<nav class="navbar navbar-default wh_header" data-whc_version="25.0">
    <div class="container-fluid">
        <div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
            <div class="wh_logo_and_publication_title_container">
                <div class="wh_logo_and_publication_title">
                    
                    <!--
                            This component will be generated when the next parameters are specified in the transformation scenario:
                            'webhelp.logo.image' and 'webhelp.logo.image.target.url'.
                            See: http://oxygenxml.com/doc/versions/17.1/ug-editor/#topics/dita_webhelp_output.html.
                    -->
                    
                    <div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle">  <span class="ph mainbooktitle"><span class="ph">Data Collector</span> User Guide</span>  </span></a></div>
                    
                </div>
                
                <!-- The menu button for mobile devices is copied in the output only when the 'webhelp.show.top.menu' parameter is set to 'yes' -->
                
            </div>

            <div class="wh_top_menu_and_indexterms_link collapse navbar-collapse">
                
                
                <div class=" wh_indexterms_link "><a href="../../../indexTerms.html" title="Index" aria-label="Go to index terms page"><span>Index</span></a></div>
                
            </div>
        </div>
    </div>
</nav>

        <div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">


<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="Search " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="Search query" required="required"/><button type="submit" class="wh_search_button" aria-label="Search"><span class="search_input_text">Search</span></button></div></form>

</div>
        
        <div class="container-fluid">
            <div class="row">

                <nav class="wh_tools d-print-none">
                    
<div data-tooltip-position="bottom" class=" wh_breadcrumb "><ol class="d-print-none"><li><span class="home"><a href="../../../index.html"><span>Home</span></a></span></li><li><div class="topicref" data-id="concept_umc_1lk_fx"><div class="title"><a href="../../../datacollector/UserGuide/Executors/Executors-title.html">Executors</a></div></div></li><li class="active"><div class="topicref" data-id="concept_xym_npb_3qb"><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#concept_xym_npb_3qb">Google Cloud Storage</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ol></div>



                    <div class="wh_right_tools "><button class="wh_hide_highlight" aria-label="Toggle search highlights" title="Toggle search highlights"></button><button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="Collapse sections" title="Collapse sections"></button><div class=" wh_navigation_links "><span id="topic_navigation_links" class="navheader">
  
<span class="navprev"><a class="- topic/link link" href="../../../datacollector/UserGuide/Executors/Email.html#concept_sjs_sfp_qz" title="Email" aria-label="Previous topic: Email" rel="prev"></a></span>  
<span class="navnext"><a class="- topic/link link" href="../../../datacollector/UserGuide/Executors/GBQuery-E.html#concept_sqc_w4w_ktb" title="Google BigQuery" aria-label="Next topic: Google BigQuery" rel="next"></a></span>  </span></div>
<!--External resource link-->
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="Print this page" aria-label="Print this page"></button></div>
                        
                        
                        
                        
                    </div>
                </nav>
            </div>

            

<div class="wh_content_area">
                <div class="row">
                    


                        <nav role="navigation" id="wh_publication_toc" class="col-lg-3 col-md-3 col-sm-12 d-md-block d-none d-print-none">
<div id="wh_publication_toc_content">


                            <div class=" wh_publication_toc " data-tooltip-position="right"><span class="expand-button-action-labels"><span id="button-expand-action" role="button" aria-label="Expand"></span><span id="button-collapse-action" role="button" aria-label="Collapse"></span><span id="button-pending-action" role="button" aria-label="Pending"></span></span><ul role="tree" aria-label="Table of Contents"><li role="treeitem" aria-expanded="false"><div data-tocid="concept_htw_ghg_jq-d16893e53" class="topicref" data-id="concept_htw_ghg_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_htw_ghg_jq-d16893e53-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Getting_Started/GettingStarted_Title.html#concept_htw_ghg_jq" id="concept_htw_ghg_jq-d16893e53-link">Getting Started</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_l2v_nlp_mpb-d16893e331" class="topicref" data-id="concept_l2v_nlp_mpb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_l2v_nlp_mpb-d16893e331-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/ReleaseNotes/ReleaseNotes.html#concept_l2v_nlp_mpb" id="concept_l2v_nlp_mpb-d16893e331-link">Release Notes</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_l4q_flb_kr-d16893e2582" class="topicref" data-id="concept_l4q_flb_kr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_l4q_flb_kr-d16893e2582-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Installation/Install_title.html" id="concept_l4q_flb_kr-d16893e2582-link">Installation</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ylh_yyz_ky-d16893e3984" class="topicref" data-id="concept_ylh_yyz_ky" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ylh_yyz_ky-d16893e3984-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Configuration/Config_title.html" id="concept_ylh_yyz_ky-d16893e3984-link">Configuration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ejk_f1f_5v-d16893e7058" class="topicref" data-id="concept_ejk_f1f_5v" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ejk_f1f_5v-d16893e7058-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Upgrade/Upgrade_title.html" id="concept_ejk_f1f_5v-d16893e7058-link">Upgrade</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qsw_cjy_bt-d16893e10103" class="topicref" data-id="concept_qsw_cjy_bt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qsw_cjy_bt-d16893e10103-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Design/PipelineDesign_title.html" id="concept_qsw_cjy_bt-d16893e10103-link">Pipeline Concepts and Design</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qn1_wn4_kq-d16893e11199" class="topicref" data-id="concept_qn1_wn4_kq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qn1_wn4_kq-d16893e11199-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Configuration/PipelineConfiguration_title.html" id="concept_qn1_wn4_kq-d16893e11199-link">Pipeline Configuration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hdr_gyw_41b-d16893e13057" class="topicref" data-id="concept_hdr_gyw_41b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hdr_gyw_41b-d16893e13057-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Data_Formats/DataFormats-Title.html" id="concept_hdr_gyw_41b-d16893e13057-link">Data Formats</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yjl_nc5_jq-d16893e14164" class="topicref" data-id="concept_yjl_nc5_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yjl_nc5_jq-d16893e14164-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Origins_title.html" id="concept_yjl_nc5_jq-d16893e14164-link">Origins</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yjl_nc5_jq-d16893e35197" class="topicref" data-id="concept_yjl_nc5_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yjl_nc5_jq-d16893e35197-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Processors/Processors_title.html" id="concept_yjl_nc5_jq-d16893e35197-link">Processors</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_agj_cfj_br-d16893e44037" class="topicref" data-id="concept_agj_cfj_br" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_agj_cfj_br-d16893e44037-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Destinations/Destinations-title.html" id="concept_agj_cfj_br-d16893e44037-link">Destinations</a></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="concept_umc_1lk_fx-d16893e56072" class="topicref" data-id="concept_umc_1lk_fx" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_umc_1lk_fx-d16893e56072-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Executors-title.html" id="concept_umc_1lk_fx-d16893e56072-link">Executors</a></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="concept_stt_2lk_fx-d16893e56094" class="topicref" data-id="concept_stt_2lk_fx" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Executors-overview.html#concept_stt_2lk_fx" id="concept_stt_2lk_fx-d16893e56094-link">Executors</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zhp_ldk_xhb-d16893e56118" class="topicref" data-id="concept_zhp_ldk_xhb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zhp_ldk_xhb-d16893e56118-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/ADLS-G1-FileMeta.html#concept_zhp_ldk_xhb" id="concept_zhp_ldk_xhb-d16893e56118-link">ADLS Gen1 File Metadata (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_i22_k2k_xhb-d16893e56416" class="topicref" data-id="concept_i22_k2k_xhb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_i22_k2k_xhb-d16893e56416-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/ADLS-G2-FileMeta.html#concept_i22_k2k_xhb" id="concept_i22_k2k_xhb-d16893e56416-link">ADLS Gen2 File Metadata</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_mvh_bnm_f1b-d16893e56714" class="topicref" data-id="concept_mvh_bnm_f1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_mvh_bnm_f1b-d16893e56714-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/AmazonS3.html#concept_mvh_bnm_f1b" id="concept_mvh_bnm_f1b-d16893e56714-link">Amazon S3</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fdc_qrx_jz-d16893e56919" class="topicref" data-id="concept_fdc_qrx_jz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fdc_qrx_jz-d16893e56919-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Databricks.html#concept_fdc_qrx_jz" id="concept_fdc_qrx_jz-d16893e56919-link">Databricks Job Launcher</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_bzl_3fq_zjb-d16893e57061" class="topicref" data-id="concept_bzl_3fq_zjb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_bzl_3fq_zjb-d16893e57061-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/DatabricksQuery.html#concept_bzl_3fq_zjb" id="concept_bzl_3fq_zjb-d16893e57061-link">Databricks Query </a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_sjs_sfp_qz-d16893e57252" class="topicref" data-id="concept_sjs_sfp_qz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_sjs_sfp_qz-d16893e57252-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Email.html#concept_sjs_sfp_qz" id="concept_sjs_sfp_qz-d16893e57252-link">Email</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="true" class="active"><div data-tocid="concept_xym_npb_3qb-d16893e57364" class="topicref" data-id="concept_xym_npb_3qb" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_xym_npb_3qb-d16893e57364-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#concept_xym_npb_3qb" id="concept_xym_npb_3qb-d16893e57364-link">Google Cloud Storage</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="concept_wmm_ndc_3qb-d16893e57388" class="topicref" data-id="concept_wmm_ndc_3qb" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#concept_wmm_ndc_3qb" id="concept_wmm_ndc_3qb-d16893e57388-link">Credentials</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem"><div data-tocid="concept_ktq_42d_3qb-d16893e57412" class="topicref" data-id="concept_ktq_42d_3qb" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#concept_ktq_42d_3qb" id="concept_ktq_42d_3qb-d16893e57412-link">Create New Objects</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem"><div data-tocid="concept_vln_sfd_3qb-d16893e57436" class="topicref" data-id="concept_vln_sfd_3qb" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#concept_vln_sfd_3qb" id="concept_vln_sfd_3qb-d16893e57436-link">Copy or Move Objects</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem"><div data-tocid="concept_utv_wfd_3qb-d16893e57460" class="topicref" data-id="concept_utv_wfd_3qb" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#concept_utv_wfd_3qb" id="concept_utv_wfd_3qb-d16893e57460-link">Set Metadata</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fqr_fnr_3qb-d16893e57482" class="topicref" data-id="concept_fqr_fnr_3qb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fqr_fnr_3qb-d16893e57482-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#concept_fqr_fnr_3qb" id="concept_fqr_fnr_3qb-d16893e57482-link">Event Generation</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem"><div data-tocid="task_lkw_w55_ypb-d16893e57530" class="topicref" data-id="task_lkw_w55_ypb" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GCS-E.html#task_lkw_w55_ypb" id="task_lkw_w55_ypb-d16893e57530-link">Configuring a Google Cloud Storage Executor</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_sqc_w4w_ktb-d16893e57554" class="topicref" data-id="concept_sqc_w4w_ktb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_sqc_w4w_ktb-d16893e57554-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/GBQuery-E.html#concept_sqc_w4w_ktb" id="concept_sqc_w4w_ktb-d16893e57554-link">Google BigQuery</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wgj_slk_fx-d16893e57718" class="topicref" data-id="concept_wgj_slk_fx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wgj_slk_fx-d16893e57718-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/HDFSMetadata.html#concept_wgj_slk_fx" id="concept_wgj_slk_fx-d16893e57718-link">HDFS File Metadata</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_kjw_llk_fx-d16893e58029" class="topicref" data-id="concept_kjw_llk_fx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_kjw_llk_fx-d16893e58029-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/HiveQuery.html#concept_kjw_llk_fx" id="concept_kjw_llk_fx-d16893e58029-link">Hive Query</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_j3r_gcv_sx-d16893e58207" class="topicref" data-id="concept_j3r_gcv_sx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_j3r_gcv_sx-d16893e58207-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/JDBCQuery.html#concept_j3r_gcv_sx" id="concept_j3r_gcv_sx-d16893e58207-link">JDBC Query</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ohx_r5h_z1b-d16893e58370" class="topicref" data-id="concept_ohx_r5h_z1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ohx_r5h_z1b-d16893e58370-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/MapRFSFileMeta.html#concept_ohx_r5h_z1b" id="concept_ohx_r5h_z1b-d16893e58370-link">MapR FS File Metadata</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_bj2_zlk_fx-d16893e58680" class="topicref" data-id="concept_bj2_zlk_fx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_bj2_zlk_fx-d16893e58680-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/MapReduce.html#concept_bj2_zlk_fx" id="concept_bj2_zlk_fx-d16893e58680-link">MapReduce</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qzm_l4r_kz-d16893e58905" class="topicref" data-id="concept_qzm_l4r_kz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qzm_l4r_kz-d16893e58905-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/PipelineFinisher.html#concept_qzm_l4r_kz" id="concept_qzm_l4r_kz-d16893e58905-link">Pipeline Finisher</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_kcf_sn2_jlb-d16893e59039" class="topicref" data-id="concept_kcf_sn2_jlb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_kcf_sn2_jlb-d16893e59039-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/SFTP.html#concept_kcf_sn2_jlb" id="concept_kcf_sn2_jlb-d16893e59039-link">SFTP/FTP/FTPS Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jsr_zpw_tz-d16893e59107" class="topicref" data-id="concept_jsr_zpw_tz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jsr_zpw_tz-d16893e59107-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Shell.html#concept_jsr_zpw_tz" id="concept_jsr_zpw_tz-d16893e59107-link">Shell</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xrx_crn_4qb-d16893e59241" class="topicref" data-id="concept_xrx_crn_4qb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xrx_crn_4qb-d16893e59241-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Snowflake-E.html#concept_xrx_crn_4qb" id="concept_xrx_crn_4qb-d16893e59241-link">Snowflake</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_cvy_vxb_1z-d16893e59451" class="topicref" data-id="concept_cvy_vxb_1z" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_cvy_vxb_1z-d16893e59451-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Spark.html#concept_cvy_vxb_1z" id="concept_cvy_vxb_1z-d16893e59451-link">Spark</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xxd_f5r_kx-d16893e59696" class="topicref" data-id="concept_xxd_f5r_kx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xxd_f5r_kx-d16893e59696-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Event_Handling/EventFramework-Title.html#concept_xxd_f5r_kx" id="concept_xxd_f5r_kx-d16893e59696-link">Dataflow Triggers</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zq5_pb4_flb-d16893e60134" class="topicref" data-id="concept_zq5_pb4_flb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zq5_pb4_flb-d16893e60134-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Solutions/Solutions-title.html" id="concept_zq5_pb4_flb-d16893e60134-link">Solutions</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ugp_kwf_xw-d16893e61337" class="topicref" data-id="concept_ugp_kwf_xw" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ugp_kwf_xw-d16893e61337-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/DPM/DPM_title.html" id="concept_ugp_kwf_xw-d16893e61337-link">StreamSets Control Hub</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fyf_gkq_4bb-d16893e62693" class="topicref" data-id="concept_fyf_gkq_4bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fyf_gkq_4bb-d16893e62693-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Edge_Mode/EdgePipelines_title.html" id="concept_fyf_gkq_4bb-d16893e62693-link"><span class="ph">StreamSets Data Collector Edge</span></a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wwq_gxc_py-d16893e63980" class="topicref" data-id="concept_wwq_gxc_py" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wwq_gxc_py-d16893e63980-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Multithreaded_Pipelines/MultithreadedPipelines.html#concept_wwq_gxc_py" id="concept_wwq_gxc_py-d16893e63980-link">Multithreaded Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_gzw_tdm_p2b-d16893e64187" class="topicref" data-id="concept_gzw_tdm_p2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_gzw_tdm_p2b-d16893e64187-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Microservice/Microservice_Title.html#concept_gzw_tdm_p2b" id="concept_gzw_tdm_p2b-d16893e64187-link">Microservice Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="Orchestrators_Title-d16893e64348" class="topicref" data-id="Orchestrators_Title" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action Orchestrators_Title-d16893e64348-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Orchestration_Pipelines/OrchestrationPipelines_Title.html#Orchestrators_Title" id="Orchestrators_Title-d16893e64348-link">Orchestration Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wr1_ktz_bt-d16893e64489" class="topicref" data-id="concept_wr1_ktz_bt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wr1_ktz_bt-d16893e64489-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/RPC_Pipelines/SDC_RPCpipelines_title.html#concept_wr1_ktz_bt" id="concept_wr1_ktz_bt-d16893e64489-link">SDC RPC Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fpz_5r4_vs-d16893e64679" class="topicref" data-id="concept_fpz_5r4_vs" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fpz_5r4_vs-d16893e64679-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Cluster_Mode/ClusterPipelines_title.html" id="concept_fpz_5r4_vs-d16893e64679-link">Cluster Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jjk_23z_sq-d16893e65172" class="topicref" data-id="concept_jjk_23z_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jjk_23z_sq-d16893e65172-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Data_Preview/DataPreview_Title.html#concept_jjk_23z_sq" id="concept_jjk_23z_sq-d16893e65172-link">Data Preview</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pgk_brx_rr-d16893e65458" class="topicref" data-id="concept_pgk_brx_rr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pgk_brx_rr-d16893e65458-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Alerts/RulesAlerts_title.html#concept_pgk_brx_rr" id="concept_pgk_brx_rr-d16893e65458-link">Rules and Alerts</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_asx_fdz_sq-d16893e65960" class="topicref" data-id="concept_asx_fdz_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_asx_fdz_sq-d16893e65960-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Monitoring/PipelineMonitoring_title.html#concept_asx_fdz_sq" id="concept_asx_fdz_sq-d16893e65960-link">Pipeline Monitoring</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_o3l_dtr_5q-d16893e66304" class="topicref" data-id="concept_o3l_dtr_5q" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_o3l_dtr_5q-d16893e66304-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Maintenance/PipelineMaintenance_title.html#concept_o3l_dtr_5q" id="concept_o3l_dtr_5q-d16893e66304-link">Pipeline Maintenance</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yms_ftm_sq-d16893e66768" class="topicref" data-id="concept_yms_ftm_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yms_ftm_sq-d16893e66768-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Administration/Administration_title.html#concept_yms_ftm_sq" id="concept_yms_ftm_sq-d16893e66768-link">Administration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nls_w1r_ks-d16893e67508" class="topicref" data-id="concept_nls_w1r_ks" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nls_w1r_ks-d16893e67508-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Tutorial/Tutorial-title.html" id="concept_nls_w1r_ks-d16893e67508-link">Tutorial</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_sh3_frm_tq-d16893e68001" class="topicref" data-id="concept_sh3_frm_tq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_sh3_frm_tq-d16893e68001-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Troubleshooting/Troubleshooting_title.html#concept_sh3_frm_tq" id="concept_sh3_frm_tq-d16893e68001-link">Troubleshooting</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xbx_rs1_tq-d16893e68798" class="topicref" data-id="concept_xbx_rs1_tq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xbx_rs1_tq-d16893e68798-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Glossary/Glossary_title.html#concept_xbx_rs1_tq" id="concept_xbx_rs1_tq-d16893e68798-link">Glossary</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jn1_nzb_kv-d16893e68843" class="topicref" data-id="concept_jn1_nzb_kv" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jn1_nzb_kv-d16893e68843-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-DataFormats/DataFormat_Title.html#concept_jn1_nzb_kv" id="concept_jn1_nzb_kv-d16893e68843-link">Data Formats by Stage</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pvm_yt3_wq-d16893e68958" class="topicref" data-id="concept_pvm_yt3_wq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pvm_yt3_wq-d16893e68958-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Expression_Language/ExpressionLanguage_title.html" id="concept_pvm_yt3_wq-d16893e68958-link">Expression Language</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_vcj_1ws_js-d16893e69669" class="topicref" data-id="concept_vcj_1ws_js" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_vcj_1ws_js-d16893e69669-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-RegEx/RegEx-Title.html#concept_vcj_1ws_js" id="concept_vcj_1ws_js-d16893e69669-link">Regular Expressions</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_chv_vmj_wr-d16893e69787" class="topicref" data-id="concept_chv_vmj_wr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_chv_vmj_wr-d16893e69787-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-GrokPatterns/GrokPatterns_title.html#concept_chv_vmj_wr" id="concept_chv_vmj_wr-d16893e69787-link">Grok Patterns</a></div></div></li></ul></div>
                        

</div>
</nav>
                    


                    
                    <div id="wh_topic_body" class="col-lg-7 col-md-9 col-sm-12">
<button id="wh_close_publication_toc_button" class="close-toc-button d-none" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc" aria-expanded="true"><span class="close-toc-icon-container"><span class="close-toc-icon"></span></span></button><button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true"><span class="close-toc-icon-container"><span class="close-toc-icon"></span></span></button>

                        
<div class=" wh_topic_content body "><main role="main"><article class="" role="article" aria-labelledby="ariaid-title1"><article class="nested0" aria-labelledby="ariaid-title1" id="concept_xym_npb_3qb">
    <h1 class="- topic/title title topictitle1" id="ariaid-title1">Google Cloud Storage</h1>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Google Cloud Storage executor performs
            a task in Google Cloud Storage each time it receives an event. <span class="- topic/ph ph">For information about supported versions, see <a class="- topic/xref xref" href="../Installation/SupportedSystemVersions.html#concept_s5h_bcr_n4b">Supported Systems and Versions</a>.</span></p>
        <div class="- topic/p p">Upon receiving an event, the executor can perform one of the following tasks:<ul class="- topic/ul ul" id="concept_xym_npb_3qb__ul_lw2_hjr_f2b" data-ofbid="concept_xym_npb_3qb__ul_lw2_hjr_f2b">
                <li class="- topic/li li">Create a new object for the specified content.</li>
                <li class="- topic/li li">Copy an existing object to another location in the same project.</li>
                <li class="- topic/li li">Move an existing object to another location in the same project.</li>
                <li class="- topic/li li">Add metadata to an existing object.</li>
            </ul></div>
        <p class="- topic/p p">Each Google Cloud Storage executor can perform one type of task. To perform additional
            tasks, use additional executors. </p>
        <p class="- topic/p p">Use the Google Cloud Storage executor as part of an event stream. <span class="- topic/ph ph">You can use the executor in any logical way, such as moving objects
                        after they are read by the Google Cloud Storage origin or adding metadata to
                        objects after they are written by the Google Cloud Storage
                  destination.</span></p>
        <p class="- topic/p p">When you configure the Google Cloud Storage executor, you specify the project ID and the
            credentials to use to connect. </p>
        <p class="- topic/p p">When creating new objects, you specify the location for the objects, and the content and
            optional metadata for the objects. When copying or moving objects, you specify the
            source and target location for the objects and optional metadata to add. When adding
            metadata to an existing object, you specify the metadata to use.</p>
        <p class="- topic/p p">You can also configure the executor to generate events for
                  another event stream. <span class="- topic/ph ph" id="concept_xym_npb_3qb__O-EventGen-xref">For more information about dataflow
                        triggers and the event framework, see <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">Dataflow Triggers Overview</a>.</span></p>
    </div>
<article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title2" id="concept_wmm_ndc_3qb">
    <h2 class="- topic/title title topictitle2" id="ariaid-title2">Credentials</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">To connect to Google Cloud
            Storage, the Google Cloud Storage executor must pass credentials to Google Cloud
            Storage. </p>
        <div class="- topic/p p">You can provide credentials using one the following options:<ul class="- topic/ul ul" id="concept_wmm_ndc_3qb__ul_y31_sth_wmb" data-ofbid="concept_wmm_ndc_3qb__ul_y31_sth_wmb">
                <li class="- topic/li li">Google Cloud default credentials</li>
                <li class="- topic/li li">Credentials in a file</li>
                <li class="- topic/li li">Credentials in a stage property</li>
            </ul></div>
        <p class="- topic/p p">For details on how to configure each option, see <a class="- topic/xref xref" href="../Pipeline_Configuration/GoogleCloud-Credentials.html#concept_vl2_bbx_q1b">Security in Google Cloud Stages</a>.</p>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title3" id="concept_ktq_42d_3qb">
    <h2 class="- topic/title title topictitle2" id="ariaid-title3">Create New Objects</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">You can use the Google Cloud Storage executor to
            create a new Google Cloud Storage object and write the specified content to the object
            when the executor receives an event record. </p>
        <p class="- topic/p p">When you create an object, you specify where to create the object and the content to
            write to the object. You can use an expression to represent both the location for the
            object and the content to use. You can also <a class="- topic/xref xref" href="GCS-E.html#concept_utv_wfd_3qb">specify metadata</a> to include
            with the object. </p>
        <p class="- topic/p p">For example, say you want the executor to create a new Google Cloud Storage object for
            each object that the Google Cloud Storage destination writes, and to use the new object
            to store the record count information for each written object. </p>
        <div class="- topic/p p">The destination generates a GCS Object Written event record each time that it writes an
            object. The record includes the bucket for the written object in a
                <code class="+ topic/ph pr-d/codeph ph codeph">bucket</code> field and the object path in an <code class="+ topic/ph pr-d/codeph ph codeph">objectKey</code>
            field. So, to create a new record-count object in the same bucket as the written object,
            you can use the following expression for the Object property, as
            follows:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>${record:value('/bucket')}/${record:value('/objectKey')}.recordcount</code></pre></div>
        <div class="- topic/p p">The GCS Object Written event record also includes the number of records written to the
            object. So, to write this information to the new object, you can use the following
            expression for the Content property, as
            follows:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>${record:value('/recordCount')}</code></pre></div>
        <div class="- topic/p p">
            <div class="- topic/note note tip note_tip"><span class="note__title">Tip:</span> <span class="- topic/ph ph"><span class="- topic/ph ph" id="concept_ktq_42d_3qb__ph-Event-RFields">Stage-generated event records
                              differ from stage to stage.</span> For a description of stage events,
                        see "Event Record" in the documentation for the event-generating stage. For
                        a description of pipeline events, see <a class="- topic/xref xref" href="../Pipeline_Configuration/EventGeneration.html#concept_cv3_nqt_51b">Pipeline Event Records</a>.</span></div>
        </div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title4" id="concept_vln_sfd_3qb">
    <h2 class="- topic/title title topictitle2" id="ariaid-title4">Copy or Move Objects</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">You can use the Google Cloud Storage executor to copy
            or move an object to another location when the executor receives an event record. </p>
        <p class="- topic/p p">To copy or move objects, you specify the properties that define the location of the
            object to be copied, and the target location for the copy. The target location must be
            within the same project as the source location. You can use expressions to define both
            locations. </p>
        <p class="- topic/p p">You can configure the executor to <a class="- topic/xref xref" href="GCS-E.html#concept_utv_wfd_3qb">include metadata</a> when copying or moving the object. If you configure the
            executor to include metadata while copying an object, only the copied object receives
            the metadata. </p>
        <p class="- topic/p p">For example, you can use a Google Cloud Storage executor to move each object written by a
            Google Cloud Storage destination to a Completed directory after it is closed. To do
            this, you configure the Google Cloud Storage destination to generate events. </p>
        <div class="- topic/p p">The destination generates a GCS Object Written event record each time that it writes an
            object. The record includes the bucket for the written object in a
                <code class="+ topic/ph pr-d/codeph ph codeph">bucket</code> field and the object path in an <code class="+ topic/ph pr-d/codeph ph codeph">objectKey</code>
            field. You can use this information to configure the source location properties in the
            executor as follows:<ul class="- topic/ul ul" id="concept_vln_sfd_3qb__ul_qvp_kfr_3qb" data-ofbid="concept_vln_sfd_3qb__ul_qvp_kfr_3qb">
                <li class="- topic/li li">Source Bucket: <code class="+ topic/ph pr-d/codeph ph codeph">${record:value('/bucket')}</code></li>
                <li class="- topic/li li">Source Object: <code class="+ topic/ph pr-d/codeph ph codeph">${record:value('/objectKey')}</code></li>
            </ul></div>
        <div class="- topic/p p">Then, to move the object to a Completed directory and retain the same object name, you
            can configure the target location properties as follows: <ul class="- topic/ul ul" id="concept_vln_sfd_3qb__ul_urs_nfr_3qb" data-ofbid="concept_vln_sfd_3qb__ul_urs_nfr_3qb">
                <li class="- topic/li li">Target Bucket: <code class="+ topic/ph pr-d/codeph ph codeph">${record:value('/bucket')}</code></li>
                <li class="- topic/li li">Target Object: <code class="+ topic/ph pr-d/codeph ph codeph">completed/${record:value('/objectKey')}</code></li>
            </ul></div>
        <p class="- topic/p p">To do something more complicated, like move only the subset of objects with a
                <code class="+ topic/ph pr-d/codeph ph codeph">_west</code> suffix to a different location, you can add a Stream Selector
            processor to route only events where the <code class="+ topic/ph pr-d/codeph ph codeph">objectKey</code> field includes the
            suffix to the Google Cloud Storage executor. </p>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title5" id="concept_utv_wfd_3qb">
    <h2 class="- topic/title title topictitle2" id="ariaid-title5">Set Metadata</h2>
    <div class="- topic/body concept/conbody body conbody">
        <p class="- topic/p p">When you create, copy, or move objects, you can
            define metadata for the objects at the same time. You can also use the Set Metadata
            option to add metadata to existing Google Cloud Storage objects as the primary task.</p>
        <p class="- topic/p p">When you define metadata, you specify one or more key-value pairs that you can use to
            categorize objects, such as <code class="+ topic/ph pr-d/codeph ph codeph">product: &lt;product&gt;</code>. You can use
            expressions to define the keys and the values. </p>
        <div class="- topic/p p">For example, you can use an expression to specify the number of records that were written
            to an object based on the <code class="+ topic/ph pr-d/codeph ph codeph">recordCount</code> field in the event record, as
            follows:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>key: processed records
value: ${record:value('/recordCount')}</code></pre></div>
        <p class="- topic/p p">For more information about metadata, see the <a class="- topic/xref xref" href="https://cloud.google.com/storage/docs/metadata" target="_blank" rel="external noopener">Google Cloud Storage documentation</a>.</p>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title6" id="concept_fqr_fnr_3qb">
    <h2 class="- topic/title title topictitle2" id="ariaid-title6">Event Generation</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Google Cloud Storage executor can
            generate events that you can use in an event stream. When you enable event generation,
            the executor generates events each time it performs a task, such as creating or moving
            an object.</p>
        <div class="- topic/p p">Google Cloud Storage executor events can be used in any logical way. For example: <ul class="- topic/ul ul" id="concept_fqr_fnr_3qb__ul_vk1_nhy_3qb" data-ofbid="concept_fqr_fnr_3qb__ul_vk1_nhy_3qb">
                <li class="- topic/li li">With the Email executor to send a custom email
                              after receiving an event.<p class="- topic/p p">For an example, see <a class="- topic/xref xref" href="../Solutions/SendEmail.html#concept_t2t_lp5_xz">Sending Email During Pipeline Processing</a>.</p></li>
                <li class="- topic/li li">With a destination to store event information.
                                    <p class="- topic/p p">For an example, see <a class="- topic/xref xref" href="../Solutions/EventStorage.html#concept_ocb_nnl_px">Preserving an Audit Trail of Events</a>.</p></li>
            </ul></div>
        <p class="- topic/p p"><span class="- topic/ph ph">For more information about dataflow
                        triggers and the event framework, see <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">Dataflow Triggers Overview</a>.</span></p>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title7" id="concept_hzd_shy_3qb">
    <h3 class="- topic/title title topictitle3" id="ariaid-title7">Event Records</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">Event records generated by the Google
            Cloud Storage executor have the following event-related record header attributes. Record
            header attributes are stored as String values.<div class="table-container"><table class="- topic/table table frame-all" id="concept_hzd_shy_3qb__table_brz_3gp_qx" data-ofbid="concept_hzd_shy_3qb__table_brz_3gp_qx" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                        <tr class="- topic/row">
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__1">Record Header Attribute</th>
                            <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__2">Description</th>
                        </tr>
                    </thead><tbody class="- topic/tbody tbody">
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__1">sdc.event.type</td>
                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__2">Event type. Uses the following event types:<ul class="- topic/ul ul" id="concept_hzd_shy_3qb__ul_m12_mgp_qx" data-ofbid="concept_hzd_shy_3qb__ul_m12_mgp_qx">
                                    <li class="- topic/li li">gcs-object-created - Generated after the executor creates a
                                        new object.</li>
                                    <li class="- topic/li li">gcs-object-copied - Generated after the executor copies an
                                        object to a new location.</li>
                                    <li class="- topic/li li">gcs-object-moved - Generated after the executor moves an
                                        object to a new location.</li>
                                    <li class="- topic/li li">gcs-object-changed - Generated after the executor adds
                                        metadata to an existing object as the primary task. Not
                                        generated when adding metadata while creating, copying, or
                                        moving objects. </li>
                                </ul></td>
                        </tr>
                        <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__1">sdc.event.version</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__2">Integer that indicates the version of the event record type.</td>
            </tr>
                        <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__1">sdc.event.creation_timestamp</td>
              <td class="- topic/entry entry colsep-0 rowsep-0" id="concept_hzd_shy_3qb__entry-Event-creationDate" headers="concept_hzd_shy_3qb__table_brz_3gp_qx__entry__2">Epoch timestamp when the stage created the event.
              </td>
            </tr>
                    </tbody></table></div></div>
        <div class="- topic/p p">The Google Cloud Storage executor can generate the following types of event records:<dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">gcs-object-created</dt>
                    <dd class="- topic/dd dd">
                        <p class="- topic/p p">The executor generates a gcs-object-created event record when it creates
                            a new object. </p>
                        <div class="- topic/p p">These event records have the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.event.type</code> record
                            header attribute set to <code class="+ topic/ph pr-d/codeph ph codeph">gcs-object-created</code> and include
                            the following fields: <div class="table-container"><table class="- topic/table table frame-all" id="concept_hzd_shy_3qb__table_ow5_q3y_3qb" data-ofbid="concept_hzd_shy_3qb__table_ow5_q3y_3qb" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                        <tr class="- topic/row">
                                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_hzd_shy_3qb__table_ow5_q3y_3qb__entry__1">Event Field Name</th>
                                            <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_hzd_shy_3qb__table_ow5_q3y_3qb__entry__2">Description</th>
                                        </tr>
                                    </thead><tbody class="- topic/tbody tbody">
                                        <tr class="- topic/row">
                                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_ow5_q3y_3qb__entry__1">object.bucket</td>
                                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_ow5_q3y_3qb__entry__2">Bucket where the object was created.</td>
                                        </tr>
                                        <tr class="- topic/row">
                                            <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_hzd_shy_3qb__table_ow5_q3y_3qb__entry__1">object.name</td>
                                            <td class="- topic/entry entry colsep-0 rowsep-0" headers="concept_hzd_shy_3qb__table_ow5_q3y_3qb__entry__2">Location and name of the object.</td>
                                        </tr>
                                    </tbody></table></div></div>
                    </dd>
                
            </dl><dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">gcs-object-copied</dt>
                    <dd class="- topic/dd dd"><p class="- topic/p p">The executor generates a gcs-object-copied event record after it copies
                            an object.</p>These event records have the
                            <code class="+ topic/ph pr-d/codeph ph codeph">sdc.event.type</code> record header attribute set to
                            <code class="+ topic/ph pr-d/codeph ph codeph">gcs-object-copied</code> and include the following fields:
                            <div class="table-container"><table class="- topic/table table frame-all" id="concept_hzd_shy_3qb__table_n3b_2jy_3qb" data-ofbid="concept_hzd_shy_3qb__table_n3b_2jy_3qb" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                    <tr class="- topic/row">
                                        <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__1">Event Field Name</th>
                                        <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__2">Description</th>
                                    </tr>
                                </thead><tbody class="- topic/tbody tbody">
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__1">source.object.bucket</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__2">Bucket for the object that was copied.</td>
                                    </tr>
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__1">source.object.name</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__2">Location and name of the object that was
                                            copied.</td>
                                    </tr>
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__1">target.object.bucket</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__2">Bucket where the object was copied to.</td>
                                    </tr>
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__1">target.object.name</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-0" headers="concept_hzd_shy_3qb__table_n3b_2jy_3qb__entry__2">Target location and name for the copy.</td>
                                    </tr>
                                </tbody></table></div></dd>
                
                
                    <dt class="- topic/dt dt dlterm">gcs-object-moved</dt>
                    <dd class="- topic/dd dd"><p class="- topic/p p">The executor generates a gcs-object-moved event record after it copies an
                            object.</p>These event records have the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.event.type</code>
                        record header attribute set to <code class="+ topic/ph pr-d/codeph ph codeph">gcs-object-moved</code> and include
                        the following fields: <div class="table-container"><table class="- topic/table table frame-all" id="concept_hzd_shy_3qb__table_l2w_njy_3qb" data-ofbid="concept_hzd_shy_3qb__table_l2w_njy_3qb" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                    <tr class="- topic/row">
                                        <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__1">Event Field Name</th>
                                        <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__2">Description</th>
                                    </tr>
                                </thead><tbody class="- topic/tbody tbody">
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__1">source.object.bucket</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__2">Original bucket for the object that was
                                            moved.</td>
                                    </tr>
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__1">source.object.name</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__2">Original location and name of the object.</td>
                                    </tr>
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__1">target.object.bucket</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__2">Bucket where the object was moved to.</td>
                                    </tr>
                                    <tr class="- topic/row">
                                        <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__1">target.object.name</td>
                                        <td class="- topic/entry entry colsep-0 rowsep-0" headers="concept_hzd_shy_3qb__table_l2w_njy_3qb__entry__2">New location and name for the object.</td>
                                    </tr>
                                </tbody></table></div></dd>
                
                
                    <dt class="- topic/dt dt dlterm">gcs-object-changed</dt>
                    <dd class="- topic/dd dd"><p class="- topic/p p">The executor generates a gcs-object-changed event record after it adds
                            metadata to an existing object as the primary task. This event record is
                            not generated when adding metadata while creating, copying, or moving
                            objects. </p>These event records have the
                            <code class="+ topic/ph pr-d/codeph ph codeph">sdc.event.type</code> record header attribute set to
                            <code class="+ topic/ph pr-d/codeph ph codeph">gcs-object-changed</code> and include the following fields: <div class="- topic/p p">
                            <div class="table-container"><table class="- topic/table table frame-all" id="concept_hzd_shy_3qb__table_rzy_xd2_pz" data-ofbid="concept_hzd_shy_3qb__table_rzy_xd2_pz" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                        <tr class="- topic/row">
                                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_hzd_shy_3qb__table_rzy_xd2_pz__entry__1">Event Field Name</th>
                                            <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_hzd_shy_3qb__table_rzy_xd2_pz__entry__2">Description</th>
                                        </tr>
                                    </thead><tbody class="- topic/tbody tbody">
                                        <tr class="- topic/row">
                                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_hzd_shy_3qb__table_rzy_xd2_pz__entry__1">object.bucket</td>
                                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_hzd_shy_3qb__table_rzy_xd2_pz__entry__2">Bucket of the object that was changed.</td>
                                        </tr>
                                        <tr class="- topic/row">
                                            <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_hzd_shy_3qb__table_rzy_xd2_pz__entry__1">object.name</td>
                                            <td class="- topic/entry entry colsep-0 rowsep-0" headers="concept_hzd_shy_3qb__table_rzy_xd2_pz__entry__2">Location and name of the object that was
                                                changed.</td>
                                        </tr>
                                    </tbody></table></div>
                        </div></dd>
                
            </dl></div>
    </div>
</article></article><article class="- topic/topic task/task topic task nested1" aria-labelledby="ariaid-title8" id="task_lkw_w55_ypb">
    <h2 class="- topic/title title topictitle2" id="ariaid-title8">Configuring a Google Cloud Storage Executor</h2>
    
    <div class="- topic/body task/taskbody body taskbody"><p class="- topic/shortdesc shortdesc"></p>
        <section class="- topic/section task/context section context" id="task_lkw_w55_ypb__context_fs3_1nr_3qb" data-ofbid="task_lkw_w55_ypb__context_fs3_1nr_3qb">
            <p class="- topic/p p">Configure a Google Cloud
                Storage executor to perform tasks in Google Cloud Storage upon receiving event
                records. </p>
        </section>
        <section class="- topic/ol task/steps ol steps"><ol class="- topic/ol task/steps ol steps" id="task_lkw_w55_ypb__steps_gs3_1nr_3qb" data-ofbid="task_lkw_w55_ypb__steps_gs3_1nr_3qb"><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">In the Properties panel, on the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">General</span> tab, configure the
                    following properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_lkw_w55_ypb__table_yxz_pvs_5x" data-ofbid="task_lkw_w55_ypb__table_yxz_pvs_5x" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__1">General Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__1">Name</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__2">Stage name.</td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__1">Description</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__2">Optional description.</td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__1"><a class="- topic/xref xref" href="GCS-E.html#concept_fqr_fnr_3qb">Produce Events</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__2">Generates event records when events occur. Use for
                  <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">event handling</a>.</td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__1"><a class="- topic/xref xref" href="../Pipeline_Design/DroppingUnwantedRecords.html#concept_dnj_bkm_vq">Required Fields</a></td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__2">Fields that must include data for the record to be passed into the stage. <div class="- topic/note note tip note_tip"><span class="note__title">Tip:</span> You might include fields that the stage
                  uses.</div><p class="- topic/p p">Records that do not include all required fields are processed based
                  on the error handling configured for the pipeline.</p></td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__1"><a class="- topic/xref xref" href="../Pipeline_Design/DroppingUnwantedRecords.html#concept_msl_yd4_fs">Preconditions</a></td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__2">Conditions that must evaluate to TRUE to allow a record to enter the stage for
                processing. Click <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Add</span> to create additional preconditions.
                  <p class="- topic/p p">Records that do not meet all preconditions are processed based on the error
                  handling configured for the stage.</p></td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__1"><a class="- topic/xref xref" href="../Pipeline_Design/ErrorHandling.html#concept_atr_j4y_5r">On Record Error</a></td>
              <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_lkw_w55_ypb__table_yxz_pvs_5x__entry__2">Error record handling for the stage: <ul class="- topic/ul ul" id="task_lkw_w55_ypb__ul_h5l_np2_px" data-ofbid="task_lkw_w55_ypb__ul_h5l_np2_px">
                  <li class="- topic/li li">Discard - Discards the record.</li>
                  <li class="- topic/li li">Send to Error - Sends the record to the pipeline for error handling.</li>
                  <li class="- topic/li li">Stop Pipeline - Stops the pipeline. </li>
                </ul></td>
            </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Tasks</span> tab, configure the following
                    properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_lkw_w55_ypb__table_eyy_kzz_31b" data-ofbid="task_lkw_w55_ypb__table_eyy_kzz_31b" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Task Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Task</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Task to perform upon receiving an event record. Select
                                        one of the following options:<ul class="- topic/ul ul" id="task_lkw_w55_ypb__ul_m5s_xkx_m1b" data-ofbid="task_lkw_w55_ypb__ul_m5s_xkx_m1b">
                                            <li class="- topic/li li"><a class="- topic/xref xref" href="GCS-E.html#concept_ktq_42d_3qb">Create New Object</a> - Use to create a new
                                                Google Cloud Storage object with the configured
                                                content.</li>
                                            <li class="- topic/li li"><a class="- topic/xref xref" href="GCS-E.html#concept_vln_sfd_3qb">Copy Object</a> - Use to copy a Google Cloud
                                                Storage object to another location in the same
                                                project.</li>
                                            <li class="- topic/li li"><a class="- topic/xref xref" href="GCS-E.html#concept_vln_sfd_3qb">Move Object</a> - Use to move a Google Cloud
                                                Storage object to another location in the same
                                                project.</li>
                                            <li class="- topic/li li"><a class="- topic/xref xref" href="GCS-E.html#concept_utv_wfd_3qb">Set Object Metadata</a> - Use to add metadata
                                                to an existing Google Cloud Storage object.</li>
                                        </ul></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Bucket</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Bucket for an object. You can use an expression to define
                                        the object.<p class="- topic/p p">Available when creating objects or adding
                                            metadata to existing objects. </p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Object</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Path to the object to use. You can use an expression to
                                        define the object.<p class="- topic/p p">For example, to use the object whose
                                            closure by the Google Cloud Storage destination
                                            generated the event record, use the following
                                            expression:
                                            </p><pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>${record:value('/bucket')}/${record:value('/objectKey)}</code></pre><div class="- topic/p p">To
                                            use a whole file whose closure generated the event
                                            record, use the following
                                            expression:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>${record:value('/targetFileInfo/bucket')}/${record:value('/targetFileInfo/objectKey)}</code></pre></div><p class="- topic/p p">Available
                                            when creating objects or adding metadata to existing
                                            objects as the primary task. </p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Content</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">The content to write to new objects. You can use an
                                        expression to represent the content to use.</td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Source Bucket</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Bucket of the object to be copied or moved. You can use
                                        an expression to define the source bucket. </td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Source Object</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Location and name of the object to be copied or moved.
                                        You can use an expression to define the source object.
                                    </td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Target Bucket</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Bucket for an object to be copied or moved to. You can
                                        use an expression to define the target bucket. </td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Target Object</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Target location and name for the object being copied or
                                        moved. You can use an expression to define the target
                                        object. </td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__1">Metadata</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_lkw_w55_ypb__table_eyy_kzz_31b__entry__2">Metadata to add to an existing object, or to add to an
                                        object while creating, copying, or moving the
                                            object.<p class="- topic/p p">Using <a class="- topic/xref xref" href="../Pipeline_Configuration/SimpleBulkEdit.html#concept_alb_b3y_cbb">simple or bulk edit mode</a>, click the
                                                <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Add</span> icon to define the
                                            metadata to use. </p><p class="- topic/p p">You can specify just the key or
                                            specify a key-value pair. You can use expressions to
                                            define the keys and values.</p></td>
                                </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Credentials</span> tab, configure the following
                    properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_lkw_w55_ypb__table_phz_fmp_wmb" data-ofbid="task_lkw_w55_ypb__table_phz_fmp_wmb" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__1">Credentials Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                
                                <tr class="- topic/row">
                        <td class="- topic/entry entry colsep-1 rowsep-1" id="task_lkw_w55_ypb__entry_GoogleProjectID" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__1">Project ID</td>
                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__2">
                            <p class="- topic/p p" id="task_lkw_w55_ypb__p-ProjectIDDescription" data-ofbid="task_lkw_w55_ypb__p-ProjectIDDescription">Google Cloud project ID to use.</p>
                        </td>
                    </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__1"><a class="- topic/xref xref" href="../Pipeline_Configuration/GoogleCloud-Credentials.html#concept_vl2_bbx_q1b">Credentials Provider</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__2">Provider for Google Cloud
                            credentials: <ul class="- topic/ul ul" id="task_lkw_w55_ypb__ul_phk_wgd_xmb" data-ofbid="task_lkw_w55_ypb__ul_phk_wgd_xmb">
                                <li class="- topic/li li">Default credentials provider - Uses Google Cloud default
                                    credentials.</li>
                                <li class="- topic/li li">Service account credentials file (JSON) - Uses credentials
                                    stored in a JSON service account credentials file.</li>
                                <li class="- topic/li li">Service account credentials (JSON) - Uses JSON-formatted
                                    credentials information from a service account credentials
                                    file.</li>
                            </ul></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__1"><a class="- topic/xref xref" href="../Pipeline_Configuration/GoogleCloud-Credentials.html#concept_xxg_lgr_v1b">Credentials File Path (JSON) </a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__2"><span class="- topic/ph ph">Path to the Google Cloud
                                service account credentials file used to connect. The credentials
                                file must be a JSON file.</span><p class="- topic/p p">Enter a path relative to the
                                    <span class="- topic/ph ph">Data Collector</span> resources directory, <code class="+ topic/ph pr-d/codeph ph codeph">$SDC_RESOURCES</code>, or enter an
                                absolute path.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__1"><a class="- topic/xref xref" href="../Pipeline_Configuration/GoogleCloud-Credentials.html#concept_ik1_pqp_wmb">Credentials File Content (JSON)</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_lkw_w55_ypb__table_phz_fmp_wmb__entry__2"><span class="- topic/ph ph">Contents of a Google Cloud
                                service account credentials JSON file used to
                                    connect.</span><p class="- topic/p p"><span class="- topic/ph ph">Enter
                                    JSON-formatted credential information in plain text, or use an
                                    expression to call the information from</span>
                                            <a class="- topic/xref xref" href="../Pipeline_Configuration/RuntimeValues.html#concept_bs4_5nm_2s" title="Similar to runtime properties, runtime resources are values that you define in a file local to the Data Collector and call from within a pipeline. But with runtime resources, you can restrict the permissions for the files to secure information.">runtime resources</a> or a <span class="- topic/ph ph"><span class="- topic/ph ph"><a class="- topic/xref xref" href="../Configuration/CredentialStores.html#concept_bt1_bpj_r1b">credential store.</a></span></span></p></td>
                                </tr>
                            </tbody></table></div>
                </div>
            </li></ol></section>
    </div>
</article></article></article></main></div>

                        
                        
                        


                    </div>
                    
                </div>
            </div>


        </div> <nav class="navbar navbar-default wh_footer" data-whc_version="25.0">
  <div class=" footer-container  mx-auto">
    <!-- script for Data Collector, all flavors, but only used when accessed directly, not from portal --><script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-60917135-3', 'auto');
  ga('send', 'pageview');
</script>
  </div>
</nav>

        
        <div id="go2top">
            <span class="oxy-icon oxy-icon-up"></span>
        </div>
        
        <!-- The modal container for images -->
        <div id="modal_img_large" class="modal">
            <span class="close oxy-icon oxy-icon-remove"></span>
            <!-- Modal Content (The Image) -->
            <div id="modal_img_container"></div>
            <!-- Modal Caption (Image Text) -->
            <div id="caption"></div>
        </div>
        
        
        Â© 2023 StreamSets, Inc.

    </body>
</html>